'''
这个任务是用来爬取中国地震网的数据，并且保存金csv文件中
首先写一个爬虫，因为网站比较简单，所以我们直接写爬虫就可以，就不用scrapy框架了
'''
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import requests
import json


'''
任意网站数据解析实现
'''


# 准备数据
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'}

# 发送请求得到数据
def send_request(url):
    response = requests.get(url, headers=headers).content.decode()[1:-1]
    return json.loads(response)

#  分析数据
def analysis_data(data):
    for i in data['shuju']:
        data_dataframe = pd.DataFrame(i, index=[i['LOCATION_C']])
        yield data_dataframe


# 写入文件
def save_svc(datas):
    for data in datas:
        if '地震数据3.csv' not in os.listdir(os.getcwd()):
            data.to_csv('地震数据3.csv', mode='a')
        else:
            data.to_csv('地震数据3.csv', mode='a', header=False)


# 批量获取文件
def get_all_data():
    url_list = []
    for i in range(1, 58):
        url = 'http://www.ceic.ac.cn/ajax/speedsearch?num=6&&page=%s' % i
        url_list.append(url)
    return url_list
def  run():
    # 生成地址列表
    url_list = get_all_data()
    # 便利地址发送请求
    for url in url_list:
        datas = send_request(url)
        # 清洗数据
        data_dataframe = analysis_data(datas)
        # 保存到文件
        save_svc(data_dataframe)


run()

